{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 问题：解释一下 python 中 pass 语句的作用"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "emmmmmmmmm，这题是 Python 中的基本常识了，我们在工作中应该经常用的到，也是一个在面试中经常会考的一个点。\n",
    "\n",
    "答案\n",
    "pass是一个空操作。当它被执行时，什么都不发生。它适合当语法上需要一条语句但并不需要执行任何代码时用来临时占位。\n",
    "\n",
    "一般什么情况下，我们会使用pass语句呢？按它的定义，我可以用它来临时占位。另外，也可以使用它去忽略一些预想的异常。对某一类异常，我们在捕捉到之后，不去做数据做任何处理，这个时候就可以使用pass语句。\n",
    "\n",
    "Tips : 这道题不会深究，我们只需要知道定义和在什么情况下使用即可。\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 问题：单引号，双引号，三引号的用法区别\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Python中的字符串可以使用单引号或双引号甚至三引号创建。\n",
    "\n",
    "答案\n",
    "单引号中的字符串不能包含任何其他单引号字符，否则会出现错误，因为编译器无法识别从何处开始和结束字符串。要克服此错误，首选使用双引号，因为它有助于创建带有单引号的字符串。对于包含双引号的字符串，建议使用三引号。除此之外，三重引号还允许创建多行字符串。\n",
    "\n",
    "简而言之：\n",
    "\n",
    "字符串中有单引号，可以使用双引号或三引号创建\n",
    "\n",
    "s = \"aaaaa'bbbbb'ccccc\"\n",
    "字符串中有双引号，可以使用单引号或三引号创建\n",
    "\n",
    "s = 'aaaaa\"bbbbb\"ccccc'\n",
    "字符串是多行的，可以使用三引号创建\n",
    "\n",
    "s = \"\"\"\n",
    "There are three thousand things in this world.\n",
    "Sun,Moon,and you.\n",
    "The sun is morning.\n",
    "The moon is night.\n",
    "You are  forever.\n",
    "\"\"\"\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 拓展\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "文本处理在每个应用开发中都会遇到，所以字符串的创建也是不可避免的。在Python中，字符串是表示Unicode字符的字节数组。但是，Python没有字符数据类型，单个字符只是一个长度为1的字符串。方括号索引可用于访问字符串的元素。另外，我们在前面也提到过，字符串是不可变类型的序列，一旦分配了字符串的元素就无法更改，只能将新字符串重新分配为相同的名称。如果你尝试更新或删除字符串中的字符的，会引发TypeError。\n",
    "\n",
    "这道题，我们知道了使用单引号，双引号，还有三引号去创建字符串的区别。这里，我再补充一些关于它们的用法：\n",
    "\n",
    "转义字符\n",
    "\n",
    "如果需要创建的字符串中包含一些特殊字符，使用\\对其转义。但如果字符串前面带有r或R的前缀，表示这是一个原始字符串，字符串里面的\\会当做字符处理。\n",
    "\n",
    ">>> \"There is a new line after.\\n\"\n",
    "'There is a new line after.\\n'\n",
    ">>> r\"There is a raw line.\\n\"\n",
    "'There is a raw line.\\\\n'\n",
    "字符串字面值拼接\n",
    "\n",
    "可以拼接多个相邻的字符串或字节串字面值，以空白符分隔，另外，它们所用的引号可以彼此不同。比如：\"hello\" 'world'等同于\"helloworld\"。\n",
    "\n",
    "文档字符串\n",
    "\n",
    "在Python中，在定义一个模块，或一个函数，或一个类的时候，它们各自的第一条语句出现的字符串字面值会被转换为函数的__doc__属性，即文档字符串。\n",
    "\n",
    "Tips：文档字符串会出现在对应的帮助页中。\n",
    "\n",
    "由于文档说明一般都是多行的，所以，多数情况下使用三引号。\n",
    "\n",
    ">>> def my_func():\n",
    "...     \"\"\"\n",
    "...     This is my_func's documentation.\n",
    "...     \"\"\"\n",
    "...     pass\n",
    "...\n",
    ">>> print(my_func.__doc__) # 输出：This is my_func's documentation.\n",
    ">>> help(my_func) # 请自己试着输出这个函数的帮助页\n",
    "格式化字符串字面值\n",
    "\n",
    "格式化字符串是指创建的字符串中某个字段可以被替换。可以使用str.format()，也可以直接使用f前缀去格式化字符串。\n",
    "\n",
    ">>> name = \"yang\"\n",
    ">>> \"say hi to {}\".format(name)\n",
    ">>> f\"say hi to {name}\" # 等同于上一句\n",
    "预览\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}